﻿using System;
using System.Collections.Generic;
using TuxedoLib;

namespace SpaceSquirrel
{
	public static class Text
	{
		private static readonly Dictionary<int, Dictionary<char, Image>> colors = new Dictionary<int, Dictionary<char, Image>>();
		private static readonly Dictionary<string, Image> cache = new Dictionary<string, Image>();

		private static Dictionary<char, Image> MakeColorLookup(int color)
		{
			Dictionary<char, Image> lookup = new Dictionary<char, Image>();
			foreach (char key in chars.Keys)
			{
				int[][] grid = chars[key];
				Image img = new Image(8, 8);
				for (int y = 0; y < 8; ++y)
				{
					for (int x = 0; x < 8; ++x)
					{
						if (grid[x][y] == 1)
						{
							Draw.SetPixel(img, color, x, y);
						}
					}
				}
				lookup[key] = img;
			}
			return lookup;
		}

		public static Image Render(int color, string text)
		{
			string key = color + "|" + text;
			Image img;
			if (!cache.TryGetValue(key, out img))
			{
				Dictionary<char, Image> colorLookup = Util.DictionaryGet<int, Dictionary<char, Image>>(colors, color);
				if (colorLookup == null)
				{
					colorLookup = MakeColorLookup(color);
					colors[color] = colorLookup;
				}

				img = new Image(text.Length * 8, 8);

				int x = 0;
				foreach (char c in text)
				{
					Image letter = Util.DictionaryGet<char, Image>(colorLookup, ("" + c).ToUpperInvariant()[0]);
					if (letter != null)
					{
						img.Blit(letter, x, 0);
					}
					x += 8;
				}
				cache[key] = img;
			}
			return img;
		}

		private static readonly Dictionary<char, int[][]> chars = new Dictionary<char, int[][]>()
		{
			{ '^', new int[][] { new int[] { 0,1,1,0,0,0,0,0 }, new int[] { 0,1,1,1,0,0,0,0 }, new int[] { 0,1,1,1,1,0,0,0 }, new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 0,1,1,1,1,0,0,0 }, new int[] { 0,1,1,1,0,0,0,0 }, new int[] { 0,1,1,0,0,0,0,0 } } },
			{ '!', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,1,1,1,0,1,0 }, new int[] { 1,1,1,1,0,0,0,0 }, new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '\'', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,0,1,0,0,0,0 }, new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '"', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,0,1,0,0,0,0 }, new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,0,1,0,0,0,0 }, new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '`', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,1,1,1,0,0,0,0 }, new int[] { 1,0,1,1,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,1,1,1,0,0,0,0 }, new int[] { 1,0,1,1,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ ',', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,1,1,0,1 }, new int[] { 0,0,0,0,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '-', new int[][] { new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '.', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,1,1,0 }, new int[] { 0,0,0,0,0,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '/', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,1,0,0 }, new int[] { 0,0,0,0,1,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,1,0,0,0,0,0 }, new int[] { 0,1,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '0', new int[][] { new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '1', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,1,0,0,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '2', new int[][] { new int[] { 0,1,0,0,0,1,1,0 }, new int[] { 1,1,0,0,1,1,1,0 }, new int[] { 1,0,0,1,1,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,1,1,0,0,1,0 }, new int[] { 0,1,1,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '3', new int[][] { new int[] { 0,1,0,0,0,1,0,0 }, new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,0,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '4', new int[][] { new int[] { 1,1,1,1,1,0,0,0 }, new int[] { 1,1,1,1,1,0,0,0 }, new int[] { 0,0,0,0,1,0,0,0 }, new int[] { 0,0,0,0,1,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,1,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '5', new int[][] { new int[] { 1,1,1,0,0,1,0,0 }, new int[] { 1,1,1,0,0,1,1,0 }, new int[] { 1,0,1,0,0,0,1,0 }, new int[] { 1,0,1,0,0,0,1,0 }, new int[] { 1,0,1,0,0,0,1,0 }, new int[] { 1,0,1,1,1,1,1,0 }, new int[] { 1,0,0,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '6', new int[][] { new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,0,1,1,1,1,0 }, new int[] { 0,1,0,0,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '7', new int[][] { new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,1,1,1,0 }, new int[] { 1,0,0,1,1,1,1,0 }, new int[] { 1,0,1,1,1,1,1,0 }, new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 1,1,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '8', new int[][] { new int[] { 0,1,1,0,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,0,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '9', new int[][] { new int[] { 0,1,1,0,0,1,0,0 }, new int[] { 1,1,1,1,0,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ ':', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,1,1,0,0,1,1,0 }, new int[] { 0,1,1,0,0,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ ';', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,0,1,1,0,1,0 }, new int[] { 1,1,0,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '<', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,1,1,0,0,0 }, new int[] { 0,0,1,1,1,1,0,0 }, new int[] { 0,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,1 }, new int[] { 1,1,1,1,1,1,1,1 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '=', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,1,0,1,0,0 }, new int[] { 0,0,0,1,0,1,0,0 }, new int[] { 0,0,0,1,0,1,0,0 }, new int[] { 0,0,0,1,0,1,0,0 }, new int[] { 0,0,0,1,0,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '>', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,1 }, new int[] { 1,1,1,1,1,1,1,1 }, new int[] { 0,1,1,1,1,1,1,0 }, new int[] { 0,0,1,1,1,1,0,0 }, new int[] { 0,0,0,1,1,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '?', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,1,0,0,0,0,0,0 }, new int[] { 1,1,0,0,0,0,1,0 }, new int[] { 1,0,0,0,1,0,1,0 }, new int[] { 1,0,0,1,1,0,0,0 }, new int[] { 1,1,1,1,0,0,0,0 }, new int[] { 0,1,1,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '*', new int[][] { new int[] { 0,0,1,1,1,1,0,0 }, new int[] { 0,1,0,0,0,0,1,0 }, new int[] { 1,0,0,1,1,0,0,1 }, new int[] { 1,0,1,0,0,1,0,1 }, new int[] { 1,0,1,0,0,1,0,1 }, new int[] { 1,0,1,0,0,1,0,1 }, new int[] { 0,1,0,0,0,0,1,0 }, new int[] { 0,0,1,1,1,1,0,0 } } },
			{ 'A', new int[][] { new int[] { 0,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'B', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,0,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'C', new int[][] { new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 0,1,0,0,0,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'D', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'E', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'F', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,1,0,0,0,0 }, new int[] { 1,0,0,1,0,0,0,0 }, new int[] { 1,0,0,1,0,0,0,0 }, new int[] { 1,0,0,1,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'G', new int[][] { new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,0,1,1,1,1,0 }, new int[] { 0,1,0,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'H', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'I', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'J', new int[][] { new int[] { 0,0,0,0,1,1,0,0 }, new int[] { 0,0,0,0,1,1,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'K', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,1,0,0,0,0 }, new int[] { 0,0,1,1,1,0,0,0 }, new int[] { 0,1,1,0,1,1,0,0 }, new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'L', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'M', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,0,0,0,0,0 }, new int[] { 0,0,1,1,0,0,0,0 }, new int[] { 0,1,1,0,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'N', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,0,0,0,0,0 }, new int[] { 0,0,1,1,0,0,0,0 }, new int[] { 0,0,0,1,1,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'O', new int[][] { new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'P', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,1,1,1,1,0,0,0 }, new int[] { 0,1,1,1,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'Q', new int[][] { new int[] { 0,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,1,0 }, new int[] { 1,0,0,0,1,0,1,0 }, new int[] { 1,0,0,0,1,1,1,0 }, new int[] { 1,1,1,1,1,1,0,0 }, new int[] { 0,1,1,1,1,0,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'R', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,0,0,0,1,0,0,0 }, new int[] { 1,0,0,0,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,1,1,1,0,0,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'S', new int[][] { new int[] { 0,1,1,0,0,1,0,0 }, new int[] { 1,1,1,1,0,1,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,0,0,1,0,0,1,0 }, new int[] { 1,1,0,1,1,1,1,0 }, new int[] { 0,1,0,0,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'T', new int[][] { new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'U', new int[][] { new int[] { 1,1,1,1,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'V', new int[][] { new int[] { 1,1,1,1,0,0,0,0 }, new int[] { 1,1,1,1,1,0,0,0 }, new int[] { 0,0,0,0,1,1,0,0 }, new int[] { 0,0,0,0,0,1,1,0 }, new int[] { 0,0,0,0,1,1,0,0 }, new int[] { 1,1,1,1,1,0,0,0 }, new int[] { 1,1,1,1,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'W', new int[][] { new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,1,1,0,0 }, new int[] { 0,0,0,1,1,0,0,0 }, new int[] { 0,0,0,0,1,1,0,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 1,1,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'X', new int[][] { new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 1,1,1,0,1,1,1,0 }, new int[] { 0,0,1,1,1,0,0,0 }, new int[] { 0,0,1,1,1,0,0,0 }, new int[] { 1,1,1,0,1,1,1,0 }, new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'Y', new int[][] { new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 1,1,1,1,0,0,0,0 }, new int[] { 0,0,0,1,1,1,1,0 }, new int[] { 0,0,0,1,1,1,1,0 }, new int[] { 1,1,1,1,0,0,0,0 }, new int[] { 1,1,1,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ 'Z', new int[][] { new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 1,0,0,0,1,1,1,0 }, new int[] { 1,0,0,1,1,0,1,0 }, new int[] { 1,0,1,1,0,0,1,0 }, new int[] { 1,1,1,0,0,0,1,0 }, new int[] { 1,1,0,0,0,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '(', new int[][] { new int[] { 1,1,1,1,1,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 1,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ '&', new int[][] { new int[] { 0,0,0,1,1,1,1,0 }, new int[] { 0,0,0,0,1,1,1,0 }, new int[] { 0,0,0,1,1,0,0,0 }, new int[] { 0,0,0,1,1,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,1,1,0 }, new int[] { 0,0,0,0,0,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
			{ ')', new int[][] { new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,0,0,0,0,1,0 }, new int[] { 0,0,1,1,1,1,1,0 }, new int[] { 0,0,0,0,0,0,0,0 } } },
		};
	}
}
